package ec.edu.ups.relevo.datos.modeloBD;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;

import ec.edu.ups.relevo.utils.TecladoListenner;

@Entity
@Table(name="Imagenes")
@SequenceGenerator(name="IMAGEN_SECUENCIA", sequenceName="IMAGEN_SECUENCIA")
public class Imagen implements Serializable
{
	private static final long serialVersionUID = 1L;
	
	@Id
	@Column(name="img_id")
	private long id;

	@Column(name="img_descripcion")
	private String descripcion;
	
	@Column(name="img_tipo_extension")
	private String tipoExtension;
	
	@Column(name="img_ruta")
	private String ruta;
	
	@OneToMany( mappedBy = "imagen" ,cascade = CascadeType.ALL, fetch=FetchType.EAGER) //un mensaje esta  en muchos mensaje_contactos
    List<CategoriaImagenes> img_categoria;

	@Transient
	List<TecladoListenner> listeners=new ArrayList<TecladoListenner>();
	
	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public String getTipoExtension() {
		return tipoExtension;
	}

	public void setTipoExtension(String tipoExtension) {
		this.tipoExtension = tipoExtension;
	}

	public String getRuta() {
		return ruta;
	}

	public void setRuta(String ruta) {
		this.ruta = ruta;
	}

	@Transient
	public void addListener(TecladoListenner l)
	{
		listeners.add(l);
	}
	@Transient
	public void tecleo()
	{
		for(TecladoListenner tl:listeners)
			tl.onTeclea(this);
		
	}
}
